package dreamtwodancetiktokenumsmymongo

const (
	DanceComposeToolChangeLogChangeTypeAdd     = 1 //增加
	DanceComposeToolChangeLogChangeTypeReduced = 2 //减少

	DanceComposeToolChangeLogSourceDirectDrawPrize     = 1 //抽奖直接获得
	DanceComposeToolChangeLogSourceSingleWeekRank      = 2 //个人周榜发放
	DanceComposeToolChangeLogSourceCoupleWeekRank      = 3 //Cp周榜发放
	DanceComposeToolChangeLogSourceHistoryOnceClear    = 4 //双人历史排行榜获得
	DanceComposeToolChangeLogSourceGiftPackageActivity = 5 // 礼包活动
	DanceComposeToolChangeLogSourcePrizeDrawCPGift     = 6 // 抽奖CP赠送
	DanceComposeToolChangeLogSourceGiftPackCPGift      = 7 // 礼包CP赠送

)

type DanceComposeToolChangeLogEnums struct {
}

var DanceComposeToolChangeLogEnumsObject DanceComposeToolChangeLogEnums

func (e DanceComposeToolChangeLogEnums) SourceType() []int {
	return []int{
		DanceComposeToolChangeLogSourceDirectDrawPrize,
		DanceComposeToolChangeLogSourceSingleWeekRank,
		DanceComposeToolChangeLogSourceCoupleWeekRank,
		DanceComposeToolChangeLogSourceHistoryOnceClear,
		DanceComposeToolChangeLogSourceGiftPackageActivity,
		DanceComposeToolChangeLogSourcePrizeDrawCPGift,
		DanceComposeToolChangeLogSourceGiftPackCPGift,
	}
}

func (e DanceComposeToolChangeLogEnums) SourceMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.SourceType() {
		m[s] = e.SourceString(s)
	}
	return m
}

func (e DanceComposeToolChangeLogEnums) SourceString(tag int) string {
	switch tag {
	case DanceComposeToolChangeLogSourceDirectDrawPrize:
		return "抽奖直接获得"
	case DanceComposeToolChangeLogSourceSingleWeekRank:
		return "个人周榜发放"
	case DanceComposeToolChangeLogSourceCoupleWeekRank:
		return "Cp周榜发放"
	case DanceComposeToolChangeLogSourceHistoryOnceClear:
		return "双人历史排行榜获得"
	case DanceComposeToolChangeLogSourceGiftPackageActivity:
		return "礼包活动"
	case DanceComposeToolChangeLogSourcePrizeDrawCPGift:
		return "抽奖CP赠送"
	case DanceComposeToolChangeLogSourceGiftPackCPGift:
		return "礼包CP赠送"
	default:
		return "其他"
	}
}

func (e DanceComposeToolChangeLogEnums) ChangeType() []int {
	return []int{
		DanceComposeToolChangeLogChangeTypeAdd,
		DanceComposeToolChangeLogChangeTypeReduced,
	}
}

func (e DanceComposeToolChangeLogEnums) ChangeTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ChangeType() {
		m[s] = e.ChangeTypeString(s)
	}
	return m
}

func (e DanceComposeToolChangeLogEnums) ChangeTypeString(tag int) string {
	switch tag {
	case DanceComposeToolChangeLogChangeTypeAdd:
		return "增加"
	case DanceComposeToolChangeLogChangeTypeReduced:
		return "减少"
	default:
		return "其他"
	}
}
